package com.app.service.article;

import com.app.domain.bo.article.ArticleBo;
import com.app.domain.page.Page;
import com.app.domain.po.article.ArticlePo;
import com.app.domain.vo.article.ArticleVo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 文章方法
 */
public interface ArticleService extends IService<ArticlePo> {

    /**
     * 文章列表
     *
     * @param bo 入参
     */
    Page<ArticleVo> lists(ArticleBo bo);

    /**
     * 标签筛选文章
     *
     * @param bo 入参
     */
    Page<ArticleVo> articleTags(ArticleBo bo);

    /**
     * 热门文章
     */
    Page<ArticleVo> articleHots(ArticleBo bo);

    /**
     * 文章详情
     *
     * @param articleId 文章ID
     */
    ArticleVo details(Long articleId);

    /**
     * 添加文章
     *
     * @param bo 入参
     */
    void saveOne(ArticleBo bo);

    /**
     * 修改文章
     *
     * @param bo 入参
     */
    void updateOne(ArticleBo bo);

    /**
     * 删除文章
     *
     * @param articleId 文章ID
     */
    void deleteOne(Long articleId);

}